/*****************************************************************************************
**  Author:jxx 2022
**  QQ:283591387
**完整文档见：http://v2.volcore.xyz/document/api 【代码生成页面ViewGrid】
**常用示例见：http://v2.volcore.xyz/document/vueDev
**后台操作见：http://v2.volcore.xyz/document/netCoreDev
*****************************************************************************************/
//此js文件是用来自定义扩展业务代码，可以扩展一些自定义页面或者重新配置生成的代码
import http from "@/api/http.js";
import { createStructuralDirectiveTransform } from "@vue/compiler-core";
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写) //cw_djlc_wljgwh_view_browse
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
     //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前，
        //示例：在按钮的最前面添加一个按钮
        //   this.buttons.unshift({  //也可以用push或者splice方法来修改buttons数组
        //     name: '按钮', //按钮名称
        //     icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon，vue3版本见element ui文档icon(注意不是element puls文档)
        //     type: 'primary', //按钮样式vue2版本见iview文档button，vue3版本见element ui文档button
        //     onClick: function () {
        //       this.$Message.success('点击了按钮');
        //     }
        //   });

         //在指定的个人简介Resume列后面手动增加一列
    /*   let _index = -1;
      for (let index = 0; index < this.columns.length; index++) {
        const row = this.columns[index];

        if (row.field == "finalprice") {
          //强制设置为编辑列，类型为text
          row.edit = { type: "text", keep: true };
          //获取个人简介列的位置
          _index = index;
        }
      };
      //参数配置见文档VolTable组件中columns的属性
      let options = {
        field: 'oper', title: '操作',
        type: 'text', width: 100,
        //返回一个标签
        formatter: (row) => {
          return '<a>保存</a>'
        },
        //触发事件,可以在此事件再打开一个弹出框等操作
        click: (row, column, event) => {
          this.$Message.info("保存的数据:" + row.finalprice);
          let finalprice = row.finalprice;
          let wlzbId = row.cw_djlc_wlzb_id;
          let data = {'finalprice':row.finalprice,'wlzbId':row.cw_djlc_wlzb_id}
          let url = '/api/cw_djlc_wlzb/saveFinalprice';
          http.post(url, data, true).then((s) => {
            this.rows = s.rows;
            console.log(this.rows);
            this.$Message.info(s);
          })
          //刷新表
          this.refresh();
        }
      }
      //在获取个人简介列的位置列后添加一行操作列
      this.columns.splice(_index + 1, 0, options)

 */
      this.setFiexdSearchForm(true);
      this.singleSearch = null;
      if (this.$route.path!="/cw_djlc_wljgwh_view"){
        this.buttons.forEach(x => {
          if (x.name == "新 建" || x.name == "删 除") {
            x.hidden = true;//vue3版本改为直接设置：x.hidden=true
          }
        })
      }
      this.columns.forEach(column => {
        //格式化日期
        if (column.field == 'effectivedatestart') {
          column.formatter = (row) => {
            return (row.effectivedatestart || '').split(' ')[0].replace(/-/g, '-').substr(0,10)
          }
        }
        if (column.field == 'effectivedateend') {
          column.formatter = (row) => {
            return (row.effectivedateend || '').split(' ')[0].replace(/-/g, '-').substr(0,10)
          }
        }
        if (column.field == 'priceeffectivedatestart') {
          column.formatter = (row) => {
            return (row.priceeffectivedatestart || '').split(' ')[0].replace(/-/g, '-').substr(0,10)
          }
        }
        if (column.field == 'priceeffectivedateend') {
          column.formatter = (row) => {
            return (row.priceeffectivedateend || '').split(' ')[0].replace(/-/g, '-').substr(0,10)
          }
        }
        column.normal = true;
        if (column.field == "unitprice") {
          column.cellStyle = (row, rowIndex, columnIndex) => {
            if ((row.unitprice == ""||row.unitprice == null)&&row.MTyp != 'HALB') {
              return { background: "red", color: "#ffff" }
            }
          }
        }
      })

       //开启编辑功能
       this.doubleEdit = true;
       //开启指定列可以编辑
       //**注意，开启字段的编辑信息，如果调用框架的保存方法，代码生成器中必须设置了编辑行并生成了model否则验证通不过
       /* this.columns.forEach((column) => {
         if (column.field == 'finalprice') {
           column.edit = { type: 'text' };
         }
         if (column.field == 'rebateconditions') {
          column.edit = { type: 'text' };
         }
         if (column.field == 'pricereason') {
          column.edit = { type: 'text' };
         }
         if (column.field == 'rabateprice') { //返利金额
          column.edit = { type: 'text' };
         }

       });
       //动态添加操作列
       this.columns.push({
         field: '操作',
         title: '操作',
         align: 'center',
         width: 120,
         render: this.getRender()
       }); */

    },
    /* beginEdit(row, column, index) {
      //点击行编辑  return false阻止编辑(可以根据row不同的值判断当前是否可以编辑);
      if(row.status == 1){
        this.$Message.info("当前数据不能被修改！");
          return false;
      }
      return true;
    },
    endEditBefore(row, column, index) {
      //可以自动结束编辑时，自动执行保存，下面getRender的保存按钮去掉
      //this.editSave(row);
      return true;
    },
    editSave(row) {
      //调用框架的默认保存方法
      if(row.status == 1){
        this.$Message.info("当前数据不能被修改！");
          return false;
      }
      this.http
        .post('/api/cw_djlc_wljgwh_view/update', { mainData: row }, true)
        .then((x) => {
          this.$Message.info(x);
          this.refresh();
        });
    },
    getRender() {
      //生成最后一列操作列
      return (h, { row, column, index }) => {
        return h(
          'div',
          {
            style: { color: '#0c83ff', 'font-size': '13px', cursor: 'pointer' }
          },
          [
            h(
              'a',
              {
                props: {},
                style: { 'margin-left': '9px', 'border-bottom': '1px solid' },
                onClick: (e) => {
                  if(row.status == 1){
                    this.$Message.info("当前数据不能被修改！");
                      return false;
                  }
                  e.stopPropagation();
                  //将当前行设置为编辑行
                  this.$refs.table.edit.rowIndex = index;
                }
              },
              '编辑'
            ),
            h(
              'a',
              {
                props: {},
                style: { 'margin-left': '9px', 'border-bottom': '1px solid' },
                onClick: (e) => {
                  if(row.status == 1){
                    this.$Message.info("当前数据不能被修改！");
                      return false;
                  }
                  e.stopPropagation();
                  //强制结束编辑
                  this.$refs.table.edit.rowIndex = -1;
                  //执行保存方法
                  this.editSave(row);
                }
              },
              '保存'
            )
          ]
        );
      };
    }, */
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });

    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false，则不会执行查询
      if (this.$route.path!="/cw_djlc_wljgwh_view"){
        param.wheres.push({
          name: 'bomnumber', //查询字段
          value: this.$store.getters.data().bomnumber //查询值为主表的主键id值
        });
      }
      return true;
    },
    exportBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false，则不会执行查询
      if (this.$route.path!="/cw_djlc_wljgwh_view"){
        param.wheres.push({
          name: 'bomnumber', //查询字段
          value: this.$store.getters.data().bomnumber //查询值为主表的主键id值
        });
      }
      return true;
    },
    searchAfter(result) {
      //查询后，result返回的查询数据,可以在显示到表格前处理表格的值
      if (this.$route.path!="/cw_djlc_wljgwh_view"){
        this.buttons.forEach(x => {
          if (x.name == "新 建" || x.name == "删 除") {
            x.hidden = true;//vue3版本改为直接设置：x.hidden=true
          }
        })
      }
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象，包括明细表，可以给给表单设置值，自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象，包括明细表、删除行的Id
      return true;
    },
     rowClick({ row, column, event }) {
  
    }, 
   /*  rowClick({ row, column, event }) { //查询界面table点击行选中当前行
      // console.log(row);
       this.$refs.table.$refs.table.toggleRowSelection(row);
       if (this.$refs.gridFooter && this.$refs.gridFooter.$refs.tableList) {
         //添加明细表的数据(触发明细表加载数据，见SellOrder3GridFooter方法loadBefore)
         //load方法可参照voltable组件api文档
         this.$refs.gridFooter.$refs.tableList.load()
       }
     }, */
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后，可以在此处写逻辑，如，从后台获取数据
      //(1)判断是编辑还是新建操作： this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值，请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看：console.log(this.editFormOptions)
      if (this.$route.path!="/cw_djlc_wljgwh_view"){
        this.buttons.forEach(x => {
          if (x.name == "新 建" || x.name == "删 除" ) {
            x.hidden = true;//vue3版本改为直接设置：x.hidden=true
          }
        })
      }
    }
  }
};
export default extension;
